Motor controller, flux command generator, and method for generating flux command

ABSTRACT

A motor controller includes a driver, a current detector, and a command generator. The driver is configured to drive a power converter based on a flux command on which an exploration signal is superimposed. The current detector is configured to detect an output current output from the power converter that has been driven by the driver. The command generator is configured to generate the flux command so as to reduce a current component, among current components included in the output current detected by the current detector, that corresponds to the exploration signal.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims priority under 35 U.S.C. §119 to Japanese Patent Application No. 2015-123275, filed Jun. 18, 2015. The contents of this application are incorporated herein by reference in their entirety.

BACKGROUND

Field of the Invention

The embodiments disclosed herein relate to a motor controller, a flux command generator, and a method for generating a flux command.

Discussion of the Background

In the driving of motors, some motor controllers generate a flux command to reduce the amount of current relative to torque that has been generated. Japanese Unexamined Patent Application Publication No. 2005-253258 and Japanese Unexamined Patent Application Publication No. 2012-120429 disclose generating a flux command based on the rotational speed of the motor. Japanese Unexamined Patent Application Publication No. 2005-253258 and Japanese Unexamined Patent Application Publication No. 2014-090626 disclose generating a flux command based on a torque current command.

SUMMARY

According to one aspect of the present disclosure, a motor controller includes a driver, a current detector, and a command generator. The driver is configured to drive a power converter based on a flux command on which an exploration signal is superimposed. The current detector is configured to detect an output current output from the power converter that has been driven by the driver. The command generator is configured to generate the flux command so as to reduce a current component, among current components included in the output current detected by the current detector, that corresponds to the exploration signal.

According to one aspect of the present disclosure, a flux command generator includes a current detector and a command generator. The current detector is configured to detect an output current output from a power converter that is driven based on a flux command on which an exploration signal is superimposed. The command generator is configured to generate the flux command so as to reduce a current component, among current components included in the output current detected by the current detector, that corresponds to the exploration signal.

According to the aspect of the present disclosure, a method for generating a flux command includes detecting an output current output from a power converter that is driven based on a flux command on which an exploration signal is superimposed. The flux command is generated so as to reduce a current component that is included in the output current and that corresponds to the exploration signal.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete appreciation of the present disclosure, and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:

FIG. 1 is a diagram illustrating an exemplary configuration of a motor controller according to an embodiment;

FIG. 2 is a diagram illustrating an exemplary configuration of a flux command generator;

FIG. 3 is a graph illustrating a relationship among armature interlinkage flux, generated torque, current amplitude, and load angle;

FIG. 4 is a table illustrating a relationship between armature interlinkage flux and current;

FIG. 5 is a diagram illustrating an exemplary configuration of an exploration signal generator;

FIG. 6 is a diagram illustrating an exemplary configuration of an MTPA stopping controller;

FIG. 7 is a diagram illustrating an exemplary configuration of a base command generator;

FIG. 8 is a diagram illustrating an exemplary configuration of a correction amount generator;

FIG. 9 is a diagram illustrating exemplary configurations of an exploration component extractor and the correction amount generator; and

FIG. 10 is a flowchart of processing of generating a flux command.

DESCRIPTION OF THE EMBODIMENTS

In the following description, a motor controller, a flux command generator, and a method for generating a flux command according to embodiments will be described in detail by referring to the accompanying drawings. It is noted that the following embodiments are provided for exemplary purposes only, not for limiting purposes.

1. Motor Controller

FIG. 1 is a diagram illustrating an exemplary configuration of a motor controller 1 according to this embodiment. As illustrated in FIG. 1, the motor controller 1 is disposed between a direct-current (DC) power source 2 and a motor 3. The motor controller 1 includes a power converter 10, a current detector 11, and a controller 12. The motor controller 1 converts DC power supplied from the DC power source 2 into alternating-current (AC) power, and outputs the AC power to the motor 3 so as to control the motor 3.

While in FIG. 1 the motor controller 1 is disposed between the DC power source 2 and the motor 3, the motor controller 1 may be disposed between an AC power source and the motor 3. In this case, the motor controller 1 includes a converter that converts AC power supplied from the AC power source into DC power and that supplies the DC power to the power converter 10. The current detector 11 and the controller 12 are non-limiting examples of the flux command generator recited in the appended claims.

The power converter 10 includes a capacitor C1 and a plurality of switching elements Q1 to Q6. The switching elements Q1 to Q6 are connected to each other in a three-phase bridge configuration, and each of the switching elements Q1 to Q6 is anti-parallely connected with a protection-purpose diode. The switching elements Q1 to Q6 are semiconductor switching elements such as MOSFETs (Metal-Oxide-Semiconductor Field-Effect Transistors) and IGBTs (insulated Gate Bipolar Transistors). Other examples of the switching elements Q1 to Q6 include next generation semiconductor switching elements such as SiC and GaN.

The current detector 11 detects phase currents flowing through the U phase, the V phase, and the W phase between the power converter 10 and the motor 3. Specifically, the current detector 11 detects instantaneous values i_(u), i_(v), and i_(w) of the output current output from the power converter 10 to the U phase, the V phase, and the W phase of the motor 3. The current detector 11 regards the instantaneous values i_(u), i_(v), and i_(w) (hereinafter referred to as output currents i_(u), i_(v), and i_(w)) as detection currents and outputs the detection currents.

For each of the U phase, the V phase, and the W phase, the current detector 11 has a magneto-electric converting device such as a Hall effect device, shunt resistance, and a current transformer. Using the magneto-electric converting devices, the current detector 11 detects the output currents i_(u), i_(v), and i_(w) (hereinafter occasionally collectively referred to as output current i_(o)).

In order to cause the motor 3 to rotate at a speed that is based on, for example, the speed command ω*, the controller 12 regards the output currents i_(u), i_(v), and i_(w) as feedback values and uses the feedback values to generate Pulse-Width-Modulation (PWM) signals S1 to S6, which are respectively used to drive the switching elements Q1 to Q6 of the power converter 10. Then, the controller 12 outputs the PWM signals S1 to S6 to the power converter 10. This causes the power converter 10 to convert the DC power supplied from the DC power source 2 into AC power and output the AC power to the motor 3 so as to control the motor 3.

2. Controller 12

The controller 12 includes a three-phase two-phase converter 13, a flux estimator 14, a speed position estimator 15, a torque estimator 16, a flux command outputter 17, and a driver 18. The controller 12 includes a microcomputer and various circuits. The microcomputer includes a central processing unit (CPU), a read only memory (ROM), a random access memory (RAM), and input-output ports. The CPU of the microcomputer reads a program stored in the ROM and executes the program, and thus implements the control described later.

The functions of the three-phase two-phase converter 13, the flux estimator 14, the speed position estimator 15, the torque estimator 16, the flux command outputter 17, and the driver 18 are implemented by, for example, the above-described CPU when the CPU reads and executes the program. The three-phase two-phase converter 13, the flux estimator 14, the speed position estimator 15, the torque estimator 16, the flux command outputter 17, and the driver 18 each may partially or entirely be configured in hardware form.

The three-phase two-phase converter 13 converts the output currents i_(u), i_(v), and i_(w) into two-orthogonal-axis components α and β on a fixed coordinates system. In this manner, the three-phase two-phase converter 13 obtains αβ axis current i_(αβ). The αβ axis current i_(αβ) is a vector on an αβ axis coordinates system, and includes α axis current i_(α) and β axis current i_(β). The α axis current i_(α) is an α axis component. The β axis current i_(β) is β axis component.

The flux estimator 14 obtains estimated values of αβ axis components of armature interlinkage flux φ (the estimated values will be hereinafter referred to as the αβ axis estimated flux φ_(αβ)̂) based on, for example, the αβ axis current i_(αβ) and a the αβ axis voltage command v_(αβ)*. The armature interlinkage flux φ is a flux of the stator (primary side) of the motor 3. The αβ axis estimated flux φ_(αβ)̂ includes α axis estimated flux φ_(α)̂ and β axis estimated flux φ_(β)̂. The α axis estimated flux φ_(α)̂ is an α axis component. The β axis estimated flux φ_(β)̂ is a β axis component.

Examples of the flux estimator 14 include, but are not limited to, flux calculators disclosed in Japanese Unexamined Patent Application Publication No. 2015-12770 and Japanese Unexamined Patent Application Publication No. 2015-12771. The flux estimator 14 may have any other configuration insofar as the flux estimator 14 is capable of obtaining the αβ axis estimated flux φ_(αβ)̂.

Based on the αβ axis estimated flux φ_(αβ)̂ estimated by the flux estimator 14, the speed position estimator 15 obtains estimated position θ_(φ)̂ and estimated speed ω̂. Specifically, the speed position estimator 15 obtains the estimated position θ_(φ)̂ by, for example, performing inverse tangent calculation of the αβ axis estimated flux θ_(αβ)̂. Then, the speed position estimator 15 obtains the estimated speed ω̂ by differentiating the estimated position θ_(φ)̂. The estimated position θ_(φ)̂ is an estimated value of the rotator position, θ_(φ), of the motor 3, and the rotator position θ_(φ) is the electrical angle of the rotator of the motor 3.

The torque estimator 16 calculates estimated torque T̂ based on the αβ axis current i_(αβ) and the αβ axis estimated flux φ_(αβ)̂. The estimated torque T̂ is an estimated value of the output torque, T, of the power converter 10. The output torque T is a torque generated on the motor 3 and may also be referred to as generated torque T. For example, the torque estimator 16 may obtain the estimated torque T̂ by solving the equation: T̂=(φ_(α)̂×i_(β)−φ_(β)̂×i_(α))×(3/2)×(P_(n)/2). As used in the equation, “P_(n)” denotes the number of poles of the motor 3.

The flux command outputter 17 generates a flux command φ* based on the αβ axis current i_(αβ), the estimated speed ω̂, and the estimated torque T̂. In order to drive the power converter 10, the driver 18 generates the PWM signals S1 to S6 based on the estimated position θ_(φ)̂, the flux command φ*, and the αβ axis estimated flux φ_(αβ)̂.

The PWM signals S1 to S6 respectively control the switching elements Q1 to Q6 of the power converter 10 between ON and OFF so as to cause the power converter 10 to output U phase, V phase, and W phase voltages that are based on the flux command φ*. In this manner, the rotation of the motor 3 is controlled. The power converter 10 may be equipped with an amplifier circuit that amplifies the PWM signals S1 to S6 and that outputs the amplified PWM signals respectively to the switching elements Q1 to Q6.

The flux command outputter 17 includes a speed command outputter 21, a subtractor 22, a speed controller 23, a torque controller 24, and a flux command generator 26. The speed command outputter 21 outputs the speed command ω*. The speed command ω* is a target value of the rotational speed, ω, of the rotator of the motor 3. The rotational speed ω is electrical angular speed.

The subtractor 22 subtracts the estimated speed ω̂ from the speed command ω* to obtain speed deviation Δω. In order to make the speed deviation Δω zero, the speed controller 23 performs PI (proportional integration) control with respect to the speed deviation Δω, and generates a torque command T*.

The torque controller 24 obtains torque deviation ΔT based on the torque command T* and the estimated torque T̂. For example, the torque controller 24 calculates the difference between the torque command T* and the estimated torque T̂, and regards the difference as the torque deviation ΔT and outputs the torque deviation ΔT.

Based on the αβ axis current i_(αβ), the torque deviation ΔT, and the speed command ω*, the flux command generator 26 obtains the flux command φ* so as to perform Maximum-Torque-Per-Ampere (MTPA) control. The MTPA control is to make the current through the motor 3 minimal relative to the torque of the motor 3. The flux command φ* is a target value of the armature interlinkage flux φ of the motor 3. A configuration of the flux command generator 26 will be detailed later.

The driver 18 includes a voltage command calculator 27 and a PWM controller 28. The voltage command calculator 27 generates a three-phase voltage command v_(uvw)* and the αβ axis voltage command v_(αβ)* based on the flux command φ* and the αβ axis estimated flux φ_(αβ)̂. The three-phase voltage command v_(uvw)* includes a voltage command v_(u)* of the U phase, a voltage command v_(v)* of the V phase, and a voltage command v_(w)* of the W phase. A αβ axis voltage command v_(αβ)* includes an α axis voltage command v_(α)* and a β axis voltage command v_(β)*. The α axis voltage command v_(α)* is an α axis component. The β axis voltage command v_(β)* is a β axis component.

For example, the voltage command calculator 27 solves the following Formulae (1) and (2) to convert the flux command φ* into αβ axis flux command φ_(αβ)*. The αβ axis flux command φ_(αβ)* includes an α axis flux command φ_(α) and a β axis flux command φ_(β)*. The α axis flux command φ_(α)* is an α component of the flux command φ* on a αβ axis coordinates system. The β axis flux command φ_(β)* is a β component of the flux command φ*.

φ_(α)*=φ*×cos θ_(φ)̂  (1)

φ_(β)*=φ*×sin θ_(φ)̂  (2)

The voltage command calculator 27 obtains the three-phase voltage command v_(uvw)* based on the αβ axis flux command φ_(αβ)*, the αβ axis estimated flux φ_(αβ)̂, and the estimated position θ_(φ)̂.

For example, in order to make zero the deviation, Δφ_(α), between the α axis flux command φ_(α)* and the α axis estimated flux φ_(α)̂, the voltage command calculator 27 performs, for example, PI (proportional integration) control with respect to the deviation Δφ_(α). In this manner, the voltage command calculator 27 obtains the α axis voltage command v_(α). Also, in order to make zero the deviation, Δφ_(β), between the β axis flux command and the β axis estimated flux φ_(β)̂, the voltage command calculator 27 performs, for example, PI control with respect to the deviation Δφ_(β). In this manner, the voltage command calculator 27 obtains the β axis voltage command v_(β)*.

Also, the voltage command calculator 27 converts the α axis voltage command v_(α)* and the β axis voltage command v_(β)* into components on a d-q axis coordinates system that rotate in a synchronous manner with the estimated position 0_(φ)̂. In this manner, the voltage command calculator 27 obtains a d-axis voltage command v_(d)* and a q-axis voltage command v_(q). Based on the d-axis voltage command v_(d)* and the q-axis voltage command v_(q), the voltage command calculator 27 solves the following Formulae (3) and (4) to obtain voltage amplitude Vm and phase θa.

Vm=√{square root over (v _(d) ² +v _(q) ²)}  (3)

θa=tan⁻¹(v _(q) /v _(d))  (4)

The voltage command calculator 27 adds the estimated position θ_(φ)̂ to the phase θa so as to obtain voltage phase θ. Then, the voltage command calculator 27 solves the following Formulae (5) to (7) to obtain the three-phase voltage command v_(uvw)*.

$\begin{matrix} {v_{u}^{*} = {{Vm} \times {\cos (\theta)}}} & (5) \\ {v_{v}^{*} = {{Vm} \times {\cos \left( {\theta - {\frac{2}{3}\pi}} \right)}}} & (6) \\ {v_{w}^{*} = {{Vm} \times {\cos \left( {\theta - {\frac{4}{3}\pi}} \right)}}} & (7) \end{matrix}$

The PWM controller 28 generates the PWM signals S1 to S6 based on the three-phase voltage command v_(uvw)* and outputs the PWM signals S1 to S6 to the power converter 10. This causes the power converter 10 to output to the motor 3 the voltage commands v_(u)*, v_(v), and v_(w)* of the U phase, the V phase, and the W phase. The voltage commands v_(u)*, v_(v)*, and v_(w)* respectively correspond to the voltages v_(u), v_(v), v_(w) of the U phase, the V phase, and the W phase. In a non-limiting embodiment, an amplifier circuit, not illustrated, may be provided between the PWM controller 28 and the switching elements Q1 to Q6 to amplify the PWM signals S1 to S6.

3. Flux Command Generator 26

FIG. 2 is a diagram illustrating an exemplary configuration of the flux command generator 26. As illustrated in FIG. 2, the flux command generator 26 includes an exploration signal generator 39, an exploration component extractor 40, a flux command calculator 41, an adder 42, a flux restrictor 43, and an MTPA stopping controller 44. The flux command generator 26 performs a calculation on an every calculation period Ts basis, for example.

The exploration signal generator 39 of the flux command generator 26 generates an exploration signal φ_(h). The exploration signal φ_(h) is to be superimposed on a flux command φ_(MTPA). The frequency of the exploration signal φ_(h) (hereinafter referred to as exploration signal frequency ω_(h)) belongs to a frequency band suitable or tolerable for the motor controller 1 and the motor 3 and is set at a suitable value. A non-limiting example of the exploration signal frequency ω_(h) is a frequency that is not close to driving frequency ωo and that is higher than the driving frequency ωo. The driving frequency ωo is the frequency of the output voltage of the power converter 10.

The exploration signal generator 39 solves, for example, the following Formula (8) to obtain the exploration signal φ_(h). As used in Formula (8), “K_(h)” denotes the amplitude of the exploration signal φ_(h), that is, superimposition flux amplitude. A non-limiting example of “K_(h)” is a hundredth ( 1/100) of rated flux φ_(rate).

φ_(h) =K _(h)×sin ω_(h) t  (8)

Also, the exploration signal generator 39 is capable of regulating the exploration signal frequency ω_(h) based on the speed command ω*. For example, the exploration signal generator 39 may make the exploration signal frequency ω_(h) a frequency that is n times the speed command ω* (n is equal to or more than two).

The exploration component extractor 40 extracts the amplitude of current i_(mh) (hereinafter referred to as amplitude I_(mh)) from the αβ axis current i_(αβ). The current i_(mh) is a current component that is included in the output currents i_(u), i_(v), and i_(w) and that corresponds to the exploration signal φ_(h). For example, from the amplitude, I_(m), of the αβ axis current i_(αβ), the exploration component extractor 40 extracts an amplitude that has a component of the same frequency and phase as the frequency and phase of the exploration signal θ_(h), and regards this amplitude as the amplitude I_(mh).

The flux command calculator 41 generates the flux command φ_(MTPA) based on the amplitude i_(mh), the torque deviation ΔT, and the speed command ω*. The flux command calculator 41 includes a base command generator 45, a correction amount generator 46, and a corrector 47.

The base command generator 45 generates a base flux command φ_(rate)′. The base flux command φ_(rate)′ (which is a non-limiting example of the base command recited in the appended claims) is a flux command that serves as a basis for the flux command φ*. The base flux command φ_(rate)′ (which is a non-limiting example of the base command recited in the appended claims) is generated based on, for example, the rated flux φ_(rate). The correction amount generator 46 generates the flux correction amount Δφ_(MTPA). The corrector 47 subtracts the flux correction amount Δφ_(MTPA) from the base flux command φ_(rate)′ to generate the flux command φ_(MTPA).

The flux correction amount Δφ_(MTPA), which is generated by the flux command calculator 41, will be described. FIG. 3 is a graph illustrating a relationship among the armature interlinkage flux φ, the generated torque T, the current amplitude I_(m), and load angle ρ. The load angle ρ is a current load angle from the d-axis, which is a flux axis. The current amplitude I_(m) is the amplitude of the αβ axis current i_(αβ).

As illustrated in FIG. 3, the load angle ρ and the current amplitude I_(m) have a relationship that varies depending on the state of the armature interlinkage flux φ and the state of the generated torque T. For example, assume that T=T₂. In this case, when the load angle ρ is at point B (ρ=ρ_(B)), the current amplitude I_(m) is at its minimal. When the current amplitude I_(m) is at its minimal, the armature interlinkage flux φ is φ₂. When the load angle ρ is at point A (ρ=ρ_(A)), the armature interlinkage flux φ exists in excess. When the load angle ρ is at point C (ρ=ρ_(C)), there is a deficiency of the armature interlinkage flux φ.

Here, assume that the exploration signal φ_(h) is superimposed on the armature interlinkage flux φ and that current i_(mh) that has a component of the same frequency and phase as the frequency and phase of the exploration signal φ_(h) is extracted from the current amplitude I_(m). In this case, the armature interlinkage flux φ and the current i_(mh) with the load angle ρ at point A, point B, and point C are as illustrated in FIG. 4. FIG. 4 is a table illustrating a relationship between the armature interlinkage flux φ and the current i_(mh).

As illustrated in FIG. 4, when the armature interlinkage flux φ increases from point A, the current i_(mh) increases. When the armature interlinkage flux φ decreases from point A, the current i_(mh) decreases. When the armature interlinkage flux φ increases from point C, the current i_(mh) decreases. When the armature interlinkage flux φ decreases from point C, the current I_(mh) increases. When the armature interlinkage flux φ is at point B, the current I_(mh) becomes zero.

Thus, by controlling the armature interlinkage flux φ to make the current i_(mh) zero, the armature interlinkage flux φ can be made to follow high efficiency flux (points on the MTPA curve illustrated in FIG. 3). The flux command calculator 41 calculates the flux correction amount Δφ_(MTPA) to make the current i_(mh) zero, and subtracts the flux correction amount Δφ_(MTPA) from the base flux command φ_(rate)′ to generate the flux command φ_(MTPA). Thus, the generated flux command φ_(MTPA) is capable of performing MTPA control.

In a situation of voltage saturation, it may be difficult to generate a flux command φ_(MTPA) that is capable of performing MTPA control. In view of this situation, the flux command generator 26 determines whether a voltage saturation has occurred based on the deviation between limitation flux φ_(s) _(_) _(FW) and the flux command φ*. When the flux command generator 26 has determined that a voltage saturation has occurred, the flux command generator 26 may limit flux command φ** to limitation flux φ_(s) _(_) _(FW) so as to prevent the output voltage of the power converter 10 from exceeding a limitation voltage. When the flux command generator 26 has determined that a voltage saturation has occurred, the flux command generator 26 may stop the superimposition operation of the exploration signal φ_(h) and the MTPA estimation operation.

Referring back to FIG. 2, the flux command generator 26 will be further described. The adder 42 of the flux command generator 26 adds the exploration signal φ_(h) to the flux command φ_(MTPA) so as to generate the flux command φ** In this manner, the generated flux command φ** has the exploration signal φ_(h) superimposed on the flux command φ_(MTPA).

The flux command φ** is output as the flux command φ* through the flux restrictor 43. The flux restrictor 43 includes a limiter 48. The limiter 48 limits the flux command φ* based on the limitation flux φ_(s FW).

For example, the limiter 48 refers to the limitation flux φ_(s) _(_) _(FW), and when the flux command φ** is not in excess of limitation flux φ_(s) _(_) _(FW), the limiter 48 regards the flux command φ** as the flux command φ* and outputs the flux command φ*. When the flux command φ** is in excess of the limitation flux φ_(s) _(_) _(FW), the limiter 48 limits the flux command i φ* to or below a predetermined value.

When the flux command φ** is in excess of the limitation flux φ_(s) _(_) _(FW), the limiter i 48 may limit the flux command φ* to or below 10% of the rated flux φ_(rate). This configuration ensures that the flux command φ* is limited in a voltage saturation situation.

The MTPA stopping controller 44 outputs a low-active stop command S_(STOP) to the exploration signal generator 39 and the flux command calculator 41 when the deviation Δφ between the limitation flux φ_(s) _(_) _(FW) and the flux command φ* becomes equal to or less than the threshold φ_(STOP), which is set in advance. In a non-limiting embodiment, the stop command S_(STOP) is S_(STOP)=K_(h)×K_(b), where K_(b) is in the range of from 1 to 10.

Thus, the MTPA stopping controller 44 outputs a low-active stop command S_(STOP) when the deviation Δφ between the limitation flux φ_(s) _(_) _(FW) and the flux command φ* becomes equal to or less than a predetermined level relative to the amplitude K_(h) of the exploration signal φ_(h). This configuration ensures that in a voltage saturation situation, both the superimposition operation of the exploration signal φ_(h) and the MTPA estimation operation are terminated, causing the operation of generating the flux command φ* to be terminated.

Thus, the flux command generator 26 superimposes the exploration signal φ_(h) on the flux command φ_(MTPA) so as to generate the flux command φ*; extracts from the current amplitude I_(m) a component that is the same in frequency and phase as the exploration signal φ_(h); and generates the flux command φ_(MTPA) to make the extracted component zero.

This configuration enables the motor controller 1 according to this embodiment to control the motor with higher efficiency and without the need for knowing motor characteristics in advance. In the following description, a configuration of the flux command generator 26 will be described in more detail.

3. 1. Exploration Signal Generator 39

FIG. 5 is a diagram illustrating an exemplary configuration of the exploration signal generator 39. As illustrated in FIG. 5, the exploration signal generator 39 includes an integrator 51, a sine calculator 52, an amplifier 53, and a multiplier 54. The integrator 51 integrates the exploration signal frequency ω_(h) to obtain exploration signal phase θ_(h).

The integrator 51 includes an amplifier 55, an adder 56, and a delayer 57. The amplifier 55 makes the exploration signal frequency ω_(h) Ts times higher. The adder 56 adds the result of the amplification performed by the amplifier 55 and the result of the delay operation by the delayer 57 to obtain the exploration signal phase θ_(h). The delayer 57 delays the exploration signal phase θ_(h) by one calculation period Ts.

The sine calculator 52 obtains sin θ_(h) based on the exploration signal phase θ_(h). The amplifier 53 uses gain K to make the stop command S_(STOP) K times bigger. The multiplier 54 multiplies sin θ_(h) by the result of the amplification performed by the amplifier 53 to obtain the exploration signal φ_(h) (=K× S_(STOP)×sin θ_(h)). The gain K corresponds to “K_(h)” in Formula (8). A non-limiting example of the gain K is 1% to 100% of the rated flux φ_(rate).

3. 2. MTPA Stopping Controller 44

Next, the MTPA stopping controller 44 will be described. FIG. 6 is a diagram illustrating an exemplary configuration of the MTPA stopping controller 44.

As illustrated in FIG. 6, the MTPA stopping controller 44 includes a delayer 50, a subtractor 58, and a stop signal outputter 59. The delayer 50 delays the flux command φ* by one calculation period Ts. The subtractor 58 subtracts the flux command φ* delayed by the delayer 50 from the limitation flux φ_(s) _(_) _(FW) to obtain the deviation Δφ between the limitation flux φ_(s) _(_) _(FW) and the flux command φ*. The stop signal outputter 59 outputs stop command S_(STOP) that is based on the deviation Δφ between the limitation flux φ_(s) _(_) _(FW) and the flux command φ*. For example, when the deviation Δφ is equal to or larger than threshold φ_(STOP), the stop signal outputter 59 sets S_(STOP) at 1. When the deviation Δφ is equal to or smaller than the threshold φ_(STOP), the stop signal outputter 59 sets S_(STOP) at 0.

In a non-limiting embodiment, When the deviation Δφ is smaller than the threshold φ_(STOP), the stop signal outputter 59 may output a stop command S_(STOP) that becomes closer to “0” as the deviation Δφ decreases. This configuration prevents the stop command S_(STOP) from alternating between “1” and “0” even if the deviation Δφ fluctuates around the threshold φ_(STOP).

3. 3. Base Command Generator 45

Next, a configuration of the base command generator 45 will be described. FIG. 7 is a diagram illustrating an exemplary configuration of the base command generator 45.

As illustrated in FIG. 7, the base command generator 45 includes a rated flux outputter 60 and a the lowpass filter (LPF) 64, and generates the base flux command φ_(rate)′.

The rated flux outputter 60 calculates the rated flux φ_(rate) based on rated frequency ω_(rate) [rad/s] and rated voltage V_(rate) [V_(rms)]. For example, the rated flux outputter 60 solves the following Formula (9) to obtain the rated flux φ_(rate).

$\begin{matrix} {\varphi_{rate} = {\frac{V_{rate}*\sqrt{2}}{2}/\omega_{rate}}} & (9) \end{matrix}$

As indicated in the following Formula (10), the rated frequency ω_(rate) is obtained based on the rated rotational frequency N_(rate) of the motor 3 and the number of poles P_(n) of the motor 3. The rated frequency ω_(rate) may be input through, for example, the input portion (not illustrated) of the motor controller 1. Information indicating the input rated frequency ω_(rate) is set in the controller 12. When the rated rotational frequency N_(rate) and the number of poles P_(n) are input through the input portion, the rated flux outputter 60 may obtain the rated frequency ω_(rate) based on the following Formula (10).

$\begin{matrix} {\omega_{rate} = {\frac{N_{rate}}{60} \times 2\pi \times P_{n}}} & (10) \end{matrix}$

The rated voltage V_(rate) is, for example, the rated voltage of the motor 3 or the rated voltage of the power converter 10. The rated voltage V_(rate) may be input through, for example, the input portion (not illustrated) of the motor controller 1. Information indicating the input rated voltage V_(rate) is set in the controller 12.

The lowpass filter 64 performs lowpass filter processing with respect to the rated flux φ_(rate) to obtain the base flux command φ_(rate)′. Then, the lowpass filter 64 outputs the base flux command φ_(rate). Performing primary delay processing such as this lowpass filter processing is for the purpose of eliminating or minimizing an excessive flow of output current of the power converter 10 at the time of activation.

3. 4. Correction Amount Generator 46

Next, the correction amount generator 46 will be described. FIG. 8 is a diagram illustrating an exemplary configuration of the correction amount generator 46.

As illustrated in FIG. 8, the correction amount generator 46 includes a multiplier 66, an anti-windup controller 67, an adder 68, and an integrator 69, and an impact flux booster 70.

The multiplier 66 multiplies the amplitude I_(mh) of the current i_(mh) by the stop command S_(STOP). This causes the amplitude I_(mh) of the current I_(mh) to be output as it is from the multiplier 66 when the stop command S_(STOP) is “1”, for example. When the stop command S_(STOP) is “0”, the product of the multiplication performed by the multiplier 66 is zero, causing to stop the calculation performed by the correction amount generator 46 to obtain the flux correction amount Δφ_(MTPA).

When the MTPA stopping controller 44 has stopped the superimposition operation of the exploration signal φ_(h) and the MTPA estimation operation, the anti-windup controller 67 controls the output of the integrator 69 to match the deviation Δφ between the limitation flux φ_(s) _(_) _(FW) and the flux command φ*. For example, the anti-windup controller 67 obtains the amount, i_(AW), of current corresponding to the difference between the flux command φ** and the flux command φ*so as to control the output of the integrator 69 (the amount i_(AW) of current will be hereinafter referred to as current I_(AW)).

The adder 68 adds the current i_(AW) of the anti-windup controller 67 to the product of the multiplication performed by the multiplier 66. The integrator 69 integrates the sum of the addition performed by the adder 68 to generate flux correction amount Δφ_(MTPA).

Based on the torque deviation ΔT and the current amplitude I_(m), the impact flux booster 70 outputs an impact flux boost adjustment value Δφ_(IMP). The impact flux boost adjustment value Δφ_(IMP) is used to rapidly change the flux correction amount Δφ_(MTPA) when there is an impact caused by an increase in load.

The integrator 69 is capable of adjusting the flux correction amount Δφ_(MTPA) based on the impact flux boost adjustment value Δφ_(IMP) of the impact flux booster 70. This causes the flux correction amount Δφ_(MTPA) to be rapidly changed when there is an impact caused by an increase in load. This, in turn, eliminates or minimizes out-of-synchronization phenomena caused by a deficiency in flux.

3. 5. Exploration Component Extractor 40 and Correction Amount Generator 46

FIG. 9 is a diagram illustrating exemplary configurations of the exploration component extractor 40 and the correction amount generator 46. The exploration component extractor 40, the anti-windup controller 67, the integrator 69, and the impact flux booster 70 of the correction amount generator 46 will be described in this order.

3. 5. 1. Exploration Component Extractor 40

As illustrated in FIG. 9, the exploration component extractor 40 includes an amplitude detector 71, a BPF (bandpass filter) 72, a multiplier 73, and an LPF (lowpass filter) 74. The amplitude detector 71 calculates, for example, the square-sum square root of the αβ axis current i_(αβ) included in the following Formula (11) so as to calculate the current amplitude I_(m) of the αβ axis current i_(αβ).

I _(m)=√{square root over (i _(α) ² +i _(β) ²)}  (11)

The bandpass filter 72 performs bandpass filter processing with respect to the current amplitude I_(m) to remove frequency components lower than the exploration signal frequency ω_(h) and frequency components higher than the exploration signal frequency ω_(h). In this manner, the bandpass filter 72 extracts current I_(m) _(_) _(BPF) from current amplitude I_(m). The current I_(m) _(_) _(BPF) has α component of the same frequency as the exploration signal frequency ω_(h). In a non-limiting embodiment, the bandpass filter 72 may include a lowpass filter that removes frequency components higher than the exploration signal frequency φ_(h); and a highpass filter that removes frequency components lower than the exploration signal frequency ω_(h).

The multiplier 73 multiplies the current I_(m) _(_) _(BPF) by sin θ_(h). The lowpass filter 74 performs lowpass filter processing with respect to the product of the multiplication performed by the multiplier 73. In this manner, a DC component of the current I_(mh) that has the same phase as the exploration signal phase θ_(h) is extracted from the current I_(m) _(_) _(BPF) The DC component of the current i_(mh) extracted by the lowpass filter 74 is the amplitude I_(mh) of the current i_(mh). This processing is also referred to as heterodyne processing.

3. 5. 2. Anti-Windup Controller 67

The anti-windup controller 67 includes a subtractor 75, a delayer 76, and an amplifier 77. The subtractor 75 subtracts the flux command φ* from the flux command φ**. The delayer 76 delays the result Δφ* of the subtraction performed by the subtractor 75 by one calculation period Ts.

The amplifier 77 makes the delayed subtraction result Δφ* obtained by the delayer 76 K_(a) times bigger so as to generate the current I_(AW) for anti-windup control. The gain K_(a) is a coefficient for converting flux to current and can be represented by, for example, the following Formula (12). As used in Formula (12), “I_(rate)” denotes the rated current of the motor 3, and “L” denotes the reactance of the motor 3.

$\begin{matrix} {K_{a} = {\frac{1}{L} = \frac{I_{rate}}{\varphi_{rate}}}} & (12) \end{matrix}$

When the flux command φ* is not limited by the flux restrictor 43, the flux command φ** as it is becomes the flux command φ* and is output from the flux restrictor 43. In this case, the flux command φ** is equal to the flux command φ*. Therefore, the current i_(AW) output from the anti-windup controller 67 is zero.

When the flux command φ* is limited by the flux restrictor 43, the current i_(AW) output from the anti-windup controller 67 is a current corresponding to the difference between the flux command φ** and the flux command φ*. In this case, an amount of current corresponding to the difference between the flux command φ** and the flux command φ* is added to the product of the multiplication performed by the multiplier 66.

3. 5. 3. Integrator 69

The integrator 69 includes amplifiers 78 and 80, adders 79 and 81, a limiter 82, and a delayer 83. The amplifier 78 makes the sum of the addition performed by the adder 68 K_(i) times larger. Integration gain K_(i) can be represented by the following Formula (13), for example. As used in Formula (13), ω_(MTPA) [rad/s] denotes the speed of MTPA control response, and a non-limiting example is 2π.

$\begin{matrix} {K_{i} = {{\omega_{MTPA} \times L} = {\omega_{MTPA} \times \frac{\varphi_{rate}}{I_{rate}}}}} & (13) \end{matrix}$

The adder 79 adds the impact flux boost adjustment value Δφ_(IMP) to the result of the amplification performed by the amplifier 78. The amplifier 80 makes the sum of the addition performed by the adder 79 Ts times larger. The adder 81 adds the flux correction amount Δφ_(MTPA) delayed by one calculation period Ts by the delayer 83 to the result of the amplification performed by the amplifier 80. The limiter 82 limits the sum of the addition performed by the adder 81 within a predetermined range.

3. 5. 4. Impact Flux Booster 70

The impact flux booster 70 includes absolute value calculators 84 and 88, a coefficient outputter 85, a limiter 86, a multiplier 87, a divider 89, and an amplifier 90. The absolute value calculator 84 calculates the absolute value of the speed command ω*.

The coefficient outputter 85 outputs a coefficient K_(ω), which corresponds to the absolute value, |ω*| of the speed command ω*. When, for example, the absolute value |ω*| is smaller than a predetermined value ω_(th1), the coefficient K_(α), is “0”. When the absolute value |ω*| is equal to or larger than the predetermined value ω_(th1) and smaller than a predetermined value ω_(th2), the absolute value |ω*| is closer to “1” as the absolute value |ω*| is larger. When the absolute value |ω*| is equal to or larger than the predetermined value ω_(th2), the absolute value |ω*| is “1”.

The limiter 86 limits the torque deviation ΔT within a predetermined range. For example, the limiter 86 refers to rated torque T_(rate) and the torque command T*, and when T*>0 (which is at powering driving time) and ΔT<T_(rate)×0.1, the limiter 86 makes the torque deviation ΔT zero. When T*<0 (which is at regeneration driving time) and ΔT≧T_(rate)×0. 1, the limiter 86 makes the torque deviation ΔT zero.

This enables the impact flux booster 70 to output, when the torque has increased, an impact flux boost adjustment value Δφ_(IMP) that corresponds to the torque deviation ΔT and to set, when the torque has decreased, the impact flux boost adjustment value Δφ_(IMP) at zero and output the zero impact flux boost adjustment value Δφ_(IMP). In a non-limiting embodiment, a hysteresis may be provided in the limiting operation of the limiter 86 in the state transition between the powering driving and the regeneration driving.

The multiplier 87 multiplies the torque deviation ΔT output from the limiter 86 by the coefficient K_(ω). This prevents the output of an impact flux boost adjustment value Δφ_(IMP) corresponding to the torque deviation ΔT when the speed command ω* is smaller than the predetermined value ω_(th1).

The absolute value calculator 88 calculates the absolute value of the product of the multiplication performed by the multiplier 87. The divider 89 divides, by the current amplitude I_(m), the absolute value calculated by the absolute value calculator 88. In this manner, the amount of flux deficiency is calculated. The amplifier 90 includes the gain K_(IMP) and makes the quotient of the division performed by the divider 89 K_(IMP) times larger so as to generate the impact flux boost adjustment value Δφ_(IMP) (=K_(IMP)×(K_(ω)×ΔT/I_(m))).

4. Processing of Generating Flux Command φ*

Next, a flow of the processing of generating the flux command φ* will be described. FIG. 10 is a flowchart of the processing of generating the flux command φ*. The processing of generating the flux command φ* is repeated by the motor controller 1.

As illustrated in FIG. 10, the current detector 11 detects the output current i_(o), which indicates the phase currents flowing from the power converter 10 through the U phase, the V phase, and the W phase of the motor 3 (step S10). The controller 12 extracts a current component, among the current components included in the output current I_(o), that corresponds to the exploration signal φ_(h) (step S11).

The controller 12 generates the flux command φ* to reduce the current component corresponding to the exploration signal φ_(h) (step S12). The controller 12 drives the power converter 10 based on the generated flux command φ* (step S13).

The flux command generator 26 extracts the amplitude I_(mh) of the current I_(mh) and regards the amplitude I_(mh) as the current component corresponding to the exploration signal φ_(h). Then, the flux command generator 26 generates the flux command φ* to reduce the amplitude i_(mh). This configuration, however, should not be construed in a limiting sense. Any other configuration is possible insofar as the flux command generator 26 is capable of generating the flux command φ* to reduce the current i_(mh) eventually. A possible alternative is to extract the current i_(mh) instead of the amplitude I_(mh) of the current i_(mh) and generate the flux command φ* reduce the current i_(mh).

The flux command generator 26 subtracts the flux correction amount Δφ_(MTPA) from the base flux command φ_(rate)′ so as to generate the flux command φ_(MTPA). Another possible configuration is not to use the base flux command φ_(rate)′ and to regard the flux correction amount Δφ_(MTPA) as the flux command φ_(MTPA).

As described above, the flux command generator 26 includes the MTPA stopping controller 44, the anti-windup controller 67, and the impact flux booster 70. These elements may not necessarily be provided depending on the type of the motor 3 or operation environments.

In the above-described embodiment, the flux command φ* is output from the flux command generator 26 to the voltage command calculator 27. Another possible embodiment is that the αβ axis flux command φ_(αβ)* is output from the flux command generator 26 to the voltage command calculator 27. In this case, the flux command generator 26 solves Formulae (1) and (2), described above.

Thus, the motor controller 1 according to this embodiment includes the driver 18, the current detector 11, and the flux command generator 26 (which is an example of the command generator). The driver 18 drives the power converter 10 based on the flux command φ*, on which the exploration signal φ_(h) is superimposed. The current detector 11 detects the output current output from the power converter 10 driven by the driver 18. The flux command generator 26 generates the flux command φ* to reduce a current component of the current i_(mh) that corresponds to the exploration signal φ_(h) (a non-limiting example of the current component is the amplitude I_(mh) of the current i_(mh)) among the current components included in the output currents i_(u), i_(v), and i_(w) (examples of the output current detected) detected by the current detector 11. This enables the motor controller 1 to perform a higher-efficiency operation without the need for knowing in advance the characteristics of the motor 3.

The flux command generator 26 includes the exploration component extractor 40 (which is a non-limiting example of the extractor recited in the appended claims) and the flux command calculator 41 (which is a non-limiting example of the calculator recited in the appended claims). The exploration component extractor 40 extracts a current component of the current i_(mh) included in the output current i_(o) detected by the current detector 11 (a non-limiting example of the current component is the amplitude I_(mh) of the current I_(mh)). The flux command calculator 41 calculates the flux command φ* to reduce the current component of the current i_(mh) extracted by the exploration component extractor 40. Thus, a current i_(mh) corresponding to the exploration signal φ_(h) is extracted. This configuration ensures accuracy in higher-efficiency operation.

The flux command calculator 41 calculates the flux command φ* to make zero the current component of the current i_(mh) extracted by the exploration component extractor 40. Making zero the current component of the current i_(mh) corresponding to the exploration signal φ_(h) minimizes the current relative to the generated torque T, resulting in higher accuracy and higher efficiency in the operation of the motor.

The flux command calculator 41 includes the base command generator 45, the correction amount generator 46, and the corrector 47. The base command generator 45 generates the base flux command φ_(rate)′, which serves as a basis for the flux command φ*. Based on the current component of the current I_(h) extracted by the exploration component extractor 40, the correction amount generator 46 generates the flux correction amount Δφ_(MTPA) to reduce the current i_(mh). The corrector 47 corrects the base flux command φ_(rate)′ based on the flux correction amount Δφ_(MTPA) so as to generate the flux command φ*. Based on the base flux command φ_(rate)′, which serves as a basis for the flux command φ*, the flux command φ* is reduced where necessary considering the load. This configuration eliminates or minimizes a deficiency in flux at the start of control of the motor 3, for example.

The base command generator 45 uses the lowpass filter 64 to perform lowpass filter processing with respect to the rated flux φ_(rate) (which is a non-limiting example of the “original command set in advance” recited in the appended claims) so as to generate the base flux command φ_(rate)′. Performing the lowpass filter processing causes primary delay to be generated, and thus eliminates or minimizes the current at the activation time.

The correction amount generator 46 includes the integrator 69. The integrator 69 integrates the current component of the current i_(mh) extracted by the exploration component extractor 40 (for example, the amplitude I_(mh) of the current i_(mh)) so as to generate the flux correction amount Δφ_(MTPA). This configuration ensures that the generated flux correction amount Δφ_(MTPA) is suitable for reducing the current component.

The motor controller 1 according to this embodiment includes the speed controller 23 (which is a non-limiting example of the torque command generator recited in the appended claims) and the torque estimator 16. The speed controller 23 generates the torque command T*. The torque estimator 16 obtains the estimated torque T̂, which is an estimated value of the output torque T of the power converter 10. The correction amount generator 46 includes the impact flux booster 70 (which is a non-limiting example of the adjustor recited in the appended claims). The impact flux booster 70 adjusts the flux correction amount Δφ_(MTPA) based on the difference ΔT between the torque command T* and the estimated torque T̂. This configuration enables the flux to be changed rapidly in response to, for example, a rapid change in load, and thus ensures higher accuracy and higher efficiency in the operation of the motor.

The impact flux booster 70 adjusts the flux correction amount Δφ_(MTPA) based on a quotient of the difference ΔT, between the torque command T* and the estimated torque T̂, divided by the amplitude i_(m) of the output current i_(o). This ensures higher accuracy in changing the flux when, for example, a rapid change occurs in load.

Thus, the motor controller 1 includes the “power converter to generate a current that is based on a flux command on which an exploration signal is superimposed and to cause the current to flow through the motor” and the “means for generating a flux command to reduce the current flowing from the power converter based on a current component, among the current components included in the current, that corresponds to the exploration signal”. The power converter 10 is a non-limiting example of the “power converter to generate a current that is based on a flux command on which an exploration signal is superimposed and to cause the current to flow through the motor”. The flux command generator 26 is a non-limiting example of the “means for generating a flux command to reduce the current flowing from the power converter based on a current component, among the current components included in the current, that corresponds to the exploration signal”.

Obviously, numerous modifications and variations of the present disclosure are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the present disclosure may be practiced otherwise than as specifically described herein. 

What is claimed as new and desired to be secured by Letters Patent of the United States is:
 1. A motor controller comprising: a driver configured to drive a power converter based on a flux command on which an exploration signal is superimposed; a current detector configured to detect an output current output from the power converter that has been driven by the driver; and a command generator configured to generate the flux command so as to reduce a current component, among current components included in the output current detected by the current detector, that corresponds to the exploration signal.
 2. The motor controller according to claim 1, wherein the command generator comprises an extractor configured to extract the current component corresponding to the exploration signal, and a calculator configured to calculate the flux command so as to reduce the current component extracted by the extractor.
 3. The motor controller according to claim 2, wherein the calculator is configured to calculate the flux command so as to make the current component extracted by the extractor zero.
 4. The motor controller according to claim 2, wherein the calculator comprises a base command generator configured to generate a base command that serves as a basis for the flux command, a correction amount generator configured to, based on the current component extracted by the extractor, generate a flux correction amount to reduce the current component extracted by the extractor, and a corrector configured to correct the base command based on the flux correction amount so as to generate the flux command.
 5. The motor controller according to claim 4, wherein the base command generator is configured to perform lowpass filter processing with respect to an original command set in advance so as to generate the base command.
 6. The motor controller according to claim 4, wherein the correction amount generator comprises an integrator configured to integrate the current component extracted by the extractor so as to generate the flux correction amount.
 7. The motor controller according to claim 4, further comprising: a torque command generator configured to generate a torque command; and a torque estimator configured to estimate an output torque output from the power converter, wherein the correction amount generator comprises an adjustor configured to adjust the flux correction amount based on a difference between the torque command and the torque estimated by the torque estimator.
 8. The motor controller according to claim 7, wherein the adjustor is configured to adjust the flux correction amount based on a quotient of the difference, between the torque command and the torque estimated by the torque estimator, divided by an amplitude of the output current.
 9. A flux command generator comprising: a current detector configured to detect an output current output from a power converter that is driven based on a flux command on which an exploration signal is superimposed; and a command generator configured to generate the flux command so as to reduce a current component, among current components included in the output current detected by the current detector, that corresponds to the exploration signal.
 10. A method for generating a flux command, the method comprising: detecting an output current output from a power converter that is driven based on a flux command on which an exploration signal is superimposed; and generating the flux command so as to reduce a current component that is included in the output current and that corresponds to the exploration signal.
 11. The motor controller according to claim 3, wherein the calculator comprises a base command generator configured to generate a base command that serves as a basis for the flux command, a correction amount generator configured to, based on the current component extracted by the extractor, generate a flux correction amount to reduce the current component extracted by the extractor, and a corrector configured to correct the base command based on the flux correction amount so as to generate the flux command.
 12. The motor controller according to claim 11, wherein the base command generator is configured to perform lowpass filter processing with respect to an original command set in advance so as to generate the base command.
 13. The motor controller according to claim 5, wherein the correction amount generator comprises an integrator configured to integrate the current component extracted by the extractor so as to generate the flux correction amount.
 14. The motor controller according to claim 11, wherein the correction amount generator comprises an integrator configured to integrate the current component extracted by the extractor so as to generate the flux correction amount.
 15. The motor controller according to claim 12, wherein the correction amount generator comprises an integrator configured to integrate the current component extracted by the extractor so as to generate the flux correction amount.
 16. The motor controller according to claim 5, further comprising: a torque command generator configured to generate a torque command; and a torque estimator configured to estimate an output torque output from the power converter, wherein the correction amount generator comprises an adjustor configured to adjust the flux correction amount based on a difference between the torque command and the torque estimated by the torque estimator.
 17. The motor controller according to claim 6, further comprising: a torque command generator configured to generate a torque command; and a torque estimator configured to estimate an output torque output from the power converter, wherein the correction amount generator comprises an adjustor configured to adjust the flux correction amount based on a difference between the torque command and the torque estimated by the torque estimator.
 18. The motor controller according to claim 3, further comprising: a torque command generator configured to generate a torque command; and a torque estimator configured to estimate an output torque output from the power converter, wherein the correction amount generator comprises an adjustor configured to adjust the flux correction amount based on a difference between the torque command and the torque estimated by the torque estimator.
 19. The motor controller according to claim 11, further comprising: a torque command generator configured to generate a torque command; and a torque estimator configured to estimate an output torque output from the power converter, wherein the correction amount generator comprises an adjustor configured to adjust the flux correction amount based on a difference between the torque command and the torque estimated by the torque estimator.
 20. The motor controller according to claim 5, further comprising: a torque command generator configured to generate a torque command; and a torque estimator configured to estimate an output torque output from the power converter, wherein the correction amount generator comprises an adjustor configured to adjust the flux correction amount based on a difference between the torque command and the torque estimated by the torque estimator. 